ExtJS তে Form Panel একটি খুবই গুরুত্বপূর্ণ UI কম্পোনেন্ট, যা ব্যবহারকারীদের ইনপুট নেওয়ার জন্য ব্যবহৃত হয়। এটি বিভিন্ন ধরনের ফর্ম ফিল্ড (যেমন, টেক্সটফিল্ড, রেডিও বাটন, চেকবক্স, ড্রপডাউন ইত্যাদি) ধারণ করে এবং ডেটা সাবমিট করার জন্য ব্যবহৃত হয়। Form Panel সঠিকভাবে কনফিগার করলে ইউজারের ইনপুট প্রক্রিয়া সহজ এবং ইন্টারেক্টিভ হয়।
Form Panel ExtJS এ একটি কনটেইনার প্যানেল, যা ফর্ম ইনপুট ফিল্ড, সাবমিট বাটন, এবং ইনপুট ভ্যালিডেশন কনফিগারেশন ধারণ করে। এটি সাধারণত বিভিন্ন ইনপুট ফিল্ড যেমন টেক্সটফিল্ড, রেডিও বাটন, ড্রপডাউন লিস্ট এবং বাটন ইত্যাদির মাধ্যমে ব্যবহারকারীর ডেটা সংগ্রহ করে।
এখানে Ext.form.Panel কনফিগারেশনের মাধ্যমে একটি বেসিক Form Panel তৈরি করা হবে।
Form Panel তৈরি করার জন্য প্রথমে একটি প্যানেল তৈরি করতে হবে এবং তারপর তার মধ্যে ফর্ম ইনপুট ফিল্ড যুক্ত করতে হবে।
উদাহরণ:
Ext.create('Ext.form.Panel', {
title: 'User Registration Form',
width: 350,
bodyPadding: 10, // ফর্মের চারপাশে প্যাডিং
renderTo: Ext.getBody(), // DOM এ রেন্ডার করা
items: [
{
xtype: 'textfield', // টেক্সটফিল্ড ইনপুট
name: 'username', // ইনপুট ফিল্ডের নাম
fieldLabel: 'Username', // লেবেল
allowBlank: false, // ইনপুট ফিল্ডটি খালি থাকতে পারবে না
labelAlign: 'top' // লেবেল উপরে থাকবে
},
{
xtype: 'textfield',
name: 'email',
fieldLabel: 'Email',
vtype: 'email', // ভ্যালিডেশন: ইমেল ফর্ম্যাট চেক
allowBlank: false,
labelAlign: 'top'
},
{
xtype: 'textfield',
name: 'password',
fieldLabel: 'Password',
inputType: 'password', // পাসওয়ার্ড ইনপুট ফিল্ড
allowBlank: false,
labelAlign: 'top'
},
{
xtype: 'checkbox', // চেকবক্স ইনপুট
name: 'agreeTerms',
fieldLabel: 'I agree to the terms and conditions',
inputValue: '1', // চেক করা থাকলে মান হবে 1
uncheckedValue: '0' // চেক না থাকলে মান হবে 0
}
],
buttons: [
{
text: 'Submit',
handler: function() {
var form = this.up('form').getForm(); // ফর্মের ডেটা সংগ্রহ করা
if (form.isValid()) {
console.log(form.getValues()); // ফর্মের মান কনসোল আউটপুটে দেখানো
} else {
Ext.Msg.alert('Invalid', 'Please fill in the required fields!');
}
}
}
]
});
textfield
এর মাধ্যমে আমরা ইনপুট ফিল্ড তৈরি করেছি।false
দিলে ফিল্ডটি খালি থাকতে পারবে না।password
ব্যবহার করা হয়েছে যাতে ইনপুটটি গোপন থাকে।email
দিয়ে ইমেল ফিল্ডের জন্য ভ্যালিডেশন দেয়া হয়েছে।ফর্মের ডেটা সঠিকভাবে সাবমিট করার জন্য ফর্মের getForm()
মেথড ব্যবহার করা হয়। এটি ফর্মের ডেটা রিট্রিভ করে এবং ডেটা সাবমিট করতে সহায়ক।
উদাহরণ:
handler: function() {
var form = this.up('form').getForm(); // ফর্মের ডেটা সংগ্রহ করা
if (form.isValid()) { // ফর্ম ভ্যালিড হলে
console.log(form.getValues()); // ফর্মের ডেটা কনসোল আউটপুটে দেখানো
} else {
Ext.Msg.alert('Invalid', 'Please fill in the required fields!'); // যদি ফর্ম ইনভ্যালিড হয়
}
}
isValid()
: ফর্মের সমস্ত ইনপুট ফিল্ড ভ্যালিডেশন চেক করে, এবং যদি সব ইনপুট ভ্যালিড হয় তবে true
রিটার্ন করবে।getValues()
: এটি ফর্মের সমস্ত ফিল্ডের মান সংগ্রহ করে এবং একটি অবজেক্ট হিসেবে রিটার্ন করে।ExtJS তে ফর্মের ইনপুট ভ্যালিডেশন সহজে করা যায়। এর জন্য বিভিন্ন প্রপার্টি এবং ভ্যালিডেশন মেথড ব্যবহার করা হয়।
কিছু সাধারণ ভ্যালিডেশন:
allowBlank
: এই প্রপার্টি দ্বারা একটি ফিল্ড খালি থাকতে পারবে কি না তা নির্ধারণ করা হয়।vtype
: ভ্যালিডেশন টাইপ নির্ধারণ করে (যেমন, email
, url
, alphanum
ইত্যাদি)।minLength
এবং maxLength
: ইনপুটের দৈর্ঘ্য নির্ধারণ করে।regex
: কাস্টম ভ্যালিডেশন রেগুলার এক্সপ্রেশন ব্যবহার করে।উদাহরণ:
{
xtype: 'textfield',
name: 'phone',
fieldLabel: 'Phone Number',
regex: /^[0-9]{10}$/, // ফোন নম্বরের জন্য কাস্টম রেগুলার এক্সপ্রেশন
allowBlank: false
}
ExtJS তে Form Panel তৈরি এবং কনফিগার করা খুবই সহজ এবং শক্তিশালী। এটি বিভিন্ন ফর্ম ইনপুট ফিল্ড এবং সাবমিট বাটন সমন্বিত করে ডেটা সংগ্রহের প্রক্রিয়াকে সহজ করে তোলে। Form Panel এর সাহায্যে আপনি:
ExtJS এর Form Panel কনফিগারেশন এবং বৈশিষ্ট্যগুলি ব্যবহার করে আপনি শক্তিশালী এবং ইন্টারেক্টিভ ফর্ম তৈরি করতে পারবেন যা ব্যবহারকারীর জন্য সহজ ও সুবিধাজনক হবে।
Read more